home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 32
/
Aminet 32 (1999)(Schatztruhe)[!][Aug 1999].iso
/
Aminet
/
dev
/
basic
/
Mildred.lha
/
Mildred.readme
< prev
Wrap
Text File
|
1999-05-26
|
14KB
|
160 lines
Short: Chunkygraphics library v1.50 for Blitz Basic 2
Author: Paul West
Uploader: paul@stationone.demon.co.uk
Type: dev/basic
Replaces: Mildred.lha
Requires: 68020+ CPU, preferably some fastram, and prior knowledge of blitz
Mildred is a chunkygraphics library for Blitz Basic 2. It attempts to replace
most of the existing planar graphics system and also add new features and
capabilities, the main difference being that everything is done in `chunky' data
format rather than planar. This has many advantages in various areas and a
comprehensive range of blit and other routines are provided as well as many
custom objects (chunky bitmaps, shapes, queues, tables, c2pwindows, etc..)
Mildred brings you over 250 new tokens in a custom library which has full runtime
errochecking routines. The library is the largest ever made for blitz but
probably you will not mind the byte overhead when you consider what it will make
possible for you in your software. Working in chunky allows easy graphics-card
support and output to AGA via a flexible chunky-to-planar system.
The Mildred library was written in 1998-1999 by Paul West. However, the copyright
and rights to the sourcecode has been transferred to Pagan Games, who are on the
web at http://www.pagan-games.com. You are permitted to use the library in its
normal fashion, ie using the new tokens that will appear in blitz, but are not
permitted to attempt any kind of reverse engineering. Nor are you permitted to
gain any money or goods by sale of the library. However, you ARE permitted to
use it in any and all of your blitz software, be it freeware, shareware,
licenseware, commercialware or whatever. I do not ask for any fee in return
unless you are feeling obliged and I cannot `officially' accept any kind of
payment for legal reasons. If you are using it in an commercial product that is
retailing for more than 5 UK-pounds per item, then I wouldn't mind a mention or
a sudden act of unjustified generosity. :-P
The original aminet archive was a collection of archives from the official Mildred
support site, which is at http://www.stationone.demon.co.uk and the same trend
continues with this update. There have been a number of revisions since the
previous update and some more example programs added. Loading up index.html
you will be greeted with a copy of the front page of the support site, which will
allow you to read the comments about each of the archives to give you some idea
of what they are. The main Mildred library is in the Mildred.lha archive. See the
documentation for how to install it. The only part from the index.html that will
not work is the links to the online html documentation, although that
documentation is provided in an archive.
This aminet release is intended mainly to put Mildred and associated example
programs onto the aminet so that people who do not have internet access may join
in with the fun. If you are on the internet I suggest you just go to the support
site, and also recommend joining the blitz mailing list if you haven't already
done so which can be achieved by sending an empty message to
blitz-list-subscribe@netsoc.ucd.ie where you will find a number of blitz addicts
and Mildred users.
The previous aminet release was v1.38. Some changes have occured to the library
that may require you to save your sourcecode as ascii text, install the library
and then reload your ascii text otherwise you may get tokenisation problems. Read
the information section of the documentation for details of important changes
because also some of the syntax has changed and some tokens have been axed
altogether!
This library is now v1.50. This will likely be the last release!! The following
changes to the library itself have occured since the release of v1.38:
v1.39 - Optimised routine PerformLine for speedup and less instructions
- Expanded MInk to allow specification of second and third inks to use
- Slightly rearranged internal data area and ensured alignment without Even4's, ready for extensions to access
- Added MMildredBase to return the base address of Mildred's internal data area
- Added lib support for returning base of Mildred's internal data area to other libraries, at the end of Initialise
v1.40 - Added CRsrc_TotWidth to resource structure, for shapes and bitmaps, and added support code in necessary routines
- Modified many routines to read CRsrc_TotWidth rather than move.w mem->reg, add.w mem->reg. Slight general speedups
- Rearranged part of Mc2pWindow to check and set auto-use at the start as it was possibly trashed by the CacheClearU_()
v1.41 - Made MParticleMode, MBlitMode, MQBlitMode, MSBlitMode, MQSBlitMode, MMaskScrollMode and MSMaskScrollMode into commands
- Slightly modified MUnQueue, negligible speedup, but better pipelining
- Added MDrawingMode to change mode used for drawing operations such as MPlot, MLine, MBoxF etc
- Added MDrawingMode support to MCls family for InvMode, MColourMode, MReMapMode and MSimpleReMapMode (no stencil remap!)
- Added MDrawingMode support to MPlot family for InvMode, MColourMode, MReMapMode and MSimpleReMapMode (no stencil remap)
- Added MDrawingMode support to MBoxF family for InvMode, MColourMode, MReMapMode and MSimpleReMapMode (no stencil remap)
- Added MDrawingMode support to MBox family for InvMode, MColourMode, MReMapMode and MSimpleReMapMode (no stencil remap!)
- Added MDrawingMode support to MLine family for InvMode, MColourMode, MReMapMode and MSimpleReMapMode (no stencil remap)
v1.42 - Moved _DrawingModeType in data area and made it into a word, as it was mistakenly defined as a byte so was trashing
- Fixed bugs in MSTile32x32 and MSTile32x32Store, wrapping was not implemented for the dest stencil
- Slightly optimised routine PerformRemap and fixed bug in PerformRemapUsingShape as top half of d4 needed to be cleared
- Slightly optimised MUnQueue (bitmap form), speedup of about 0.1fps!
- Fixed major bug in routine PerformBlit1, ReMap mode routine was doing stencil cut but should have been a straight blit
- Added optimisation as routines PerformBlit1[b]_16, to do groups of 16 pixels instead of 4 if the width is a multiple
- Made M[c2pWindow][Shape][Bitmap]Width and M[c2pWindow][Shape][Bitmap]Height work without specified object number
- Made MAddr[c2pWindow][Shape][Bitmap][Queue][Table] work without specified object number
- Optimised macro RemakeStencil, used for generating a stencil or cookie from a bitmap or shape
- Added optimisation as routines PerformBlit2[b]_16, to do groups of 16 pixels instead of 4 if the width is a multiple
- Fixed major bug in routines PerformBlit2[b][_16] and PerformBlit3[b] in SolidMode write to mask was or instead of and
- Recoded all tile blits in 030 mode from movem.l's to move.l's and done modulos different. 2-3fps faster, on 040.
- Added optimisation as routines PerformBlit3[b]_16, to do groups of 16 pixels instead of 4 if the width is a multiple
- Optimised GenericBlit (scroll) routines, optimised for when width is multiple of 16 or multilpes of 64 for blockscroll
- Fixed bug in all tokens that add items to a queue. Upper word of d7 was corrupt due to unusual longword usage
v1.43 - Added MParticleFormat to select mode for particle tokens, between 0=word, <0=quick and >0=actual memory addresses
- Merged Word/Quick/Address versions of particle commands into single commands, using MParticleFormat to choose
- Removed MReMap[Shape]UsingShape commands as they have been superceded by MDrawingMode functionality
- Removed Mc2pToggleSingle, Mc2pToggleDouble and Mc2pToggleTriple, as you might as well just use Mc2pToggle.
- Removed the MInitShape token and just kept with MShape for making new shapes
- Renamed MUse[c2pWindows][Shapes][Bitmaps][Queues][Tables] to the singular versions and removed the plurals
- Removed MMidHandle, MMidOrigin, MCopyHandle and MCopyOrigin completely
- Removed the unused MFlushTable completely
- Removed M040c2pUsage and any other tokens associated with its status.
- Merged MMakeCookies into MMakeCookie and removed MMakeCookies token
- Merged MMakeStencils into MMakeStencil and removed MMakeStencils token
- Merged MFree[c2pWindows][Shapes][Bitmaps][Cookies][Stencils][Queues][Tables] to the singular and removed the plurals
- Tokenisation has been severly compromised due to changes, deletions and additions.!!
v1.44 - Moved MPictureDissolveIn token to the end of the library and renamed the old one to MNothing as the 128th token fails
v1.45 - Killed Mc2pRowLacing, Mc2pColumnLacing, Mc2pRowToggle, Mc2pColumnToggle and Mc2pToggle. Tokens 1-5 free for use!
- Removed all code relating to interlaced c2p conversion, especially from Mc2pWindow, Mc2p and data area
- Changed c2pWindow structure to 8 bytes instead of 16 and allowed c2p0_Pixels to be .w or .l depending on modulos>0
- Modified Mc2pWindow and Mc2p to support non-modulo c2p routine, and implemented non-modulo c2p (040 and 030) into Mc2p
- Added MPictureDissolveOut to wipe image to a colour, bit faster than cross-wiping to blank image in MPictureDissolveIn
- Modified MCludge[Shape][Bitmap][Cookie][Stencil] to take the `-16' away from the programmer making base address actual
- Merged MUnQueueRange into extra syntax option of MUnQueue, still able to unqueue range without flush or all with flush
- Added MBlockUnQueue in place of MUnQueueRange for unqueing items with width and X coord multiple of 16 (doesn't check)
- Modified clearscreen mode of MUnQueue and MBlockUnQueue to use current ink instead of just 0's
- Tried to add stencil-unqueue (cut behind stencil) but failed, not enough regs, so removed
- Slightly optimised clearscreen mode of M[Block]UnQueue to do forwards operation and (an)+ (removes need for mulu)
- Slightly optimised routine PerformCls in all relevant blit modes
v1.46 - Added MWrapXParticles and MWrapYParticles to do wrapping of only sides or top/bottom. No X-wrap for Ptr.l, however.
- Added MAddToXParticles and MAddToYParticles to add list(s) to particles but only one of the two components (Not Ptr.l)
- Fixed small bug in errorchecking routine of MAddToParticles, check for zero address occured when address was negative
- Fixed bug in clipping version of .q 2-adder routine in MAddToParticles, a3 needed to have a skip value added
v1.47 - Fixed bugs in routine PerformGenericBlit2[b], optimised routines were copying stencil also but should be data only
- Added CustomOffsets.l to MScroll family, for using list of custom Width.w,X1Offset.w,X2Offset.w,SourceModulo.w values
- Added CustomOffsets.l to MSScroll family, for using list of custom Width.w,X1Offset.w,X2Offset.w,SourceModulo.w values
- Fixed bugs in generic blit routines, beq should have been blt for skipping if byte loopcounter was empty (-1 not 0)
- Optimised remainder-byte checking in PerformGenericBlit2[b]/5[b], was no need to test for zero bytes
- Small optimisation, changing bsr to bra if the jump is the last instruction of a routine, as there is no need to stack
- Added LongwordStore.l to data area for temporary storage of longwords, like when stacking it would not be possible
- Fixed bugs in errorchecking routines of MPointShape and MPointCookie, was jumping to Error28 instead of Error27
- Added [,Source.w] parameter to MPoint[Shape][Stencil][Cookie] to specify a source bitmap/shape for the operation
- Added MZoom, MZoomShape, MZoomBitmapToShape and MZoomShapeToBitmap, for zoomed unmasked scrolls (+CustomOffsets list!)
- Added macros CCheckXYFits2 and CCheckXYFits3 for use by errorchecking routines of MZoom[Shape][To][Bitmap]
v1.48 - Fixed bug in routine PerformBlit1_16, indirect offsets in SimpleRemap were 0..3,0..3,0..3,0..3 should have been 0..15
- Optimised (1fps+) some scrolls that copy the stencil/cookie, as interleaving the moves is faster than as bursts
- Optimised some blit modes in PerformBlit1/2/3[b][_16] using phase-shift, pipelining and interleaved mem accesses
- Optimised the 030 tile routines a bit when doing an STile, by interleaving the moves
- Optimised the SimpleReMap modes in PerformBlit1[b]_16/2[b]_16/3[b]_16 when width is multiple of 16 (gains up to 2fps)
- Optimised zoom routines. Zooms with non-integer x factor are about 4fps faster
- Optimised all zoom routines using addx method instead of swap/swap/add, gains of about 3-4fps
- Added DeRes?.w as last compulsory param of zoom tokens, and added de-res routines to zooms
- Optimised zoom routines for when x factor is 1.0 to do extra-fast y-zoom, many fps faster
- Attempted to rewrite routine PerformLine using .q loop with addx, but it performed slower due to need to use divu.w
- Optimised CustomZoom[DeRes] that uses CustomOffsets.l to do groups of 4 pixels if width is multiple, gain up to 2fps+
v1.49 - Added MAddMode which returns mode number 7 for use with various graphics routines to choose `Add' operations
- Added full support throughout the lib for MAddMode routines, byte values of source and dest are simply added together
- Updated the descriptions of numerous tokens to better represent recent changes
- Fixed bug in single-colour section of routine PerformReMap, loopcounter was screwy
v1.50 - Fixed bugs in MWrapXParticles and MWrapYParticles, loops were BGE and should have been BGT, causing 1 illegal loop
- Fixed bugs in check routines of MBox[F] family, as tables were being checked for in MAddMode (where not necessary)
Probs/comments/suggestions/worldly praise to paul@stationone.demon.co.uk
Also check out http://www.stationone.demon.co.uk for the support site, and
http://www.pagan-games.com for the Pagan Games website, to whom the copyright of
Mildred now belongs.
cheers